Complexity and brittleness are present problems in the run-time behavior management within a storage system. Complexity arises from the level of details required to specify policies. These details are non-trivial and require a thorough understanding and expertise of the system internal. More precisely, it is difficult for administrators and system builders to choose which combination of system parameters to observe from a large set of possible observables; determine appropriate threshold values after considering the interaction of a large set of system variables; and select a specific corrective action from the large set of competing options. As the number of users, storage devices, storage management actions and service level agreements increase, it becomes computationally exhaustive for a system administrator and storage management tool developers to consider all the alternatives.
With regards to brittleness, it is difficult for vendors to provide pre-packaged transformation code within their products because this code becomes brittle with respect to changing system configurations, user workloads and department/business constraints. Thus, it is difficult for the storage management vendors to envision all of the potential use case scenarios ahead of time, and thus, many of the current storage management solutions provide workflow environments which, in turn, pass the responsibility of transforming high level QoS goals (via workflow scripts) to an organization's system administrators and infra-structure planners.
What is needed is a solution which provides for autonomic management in storage systems, in which the resulting problems associated with complexity and brittleness are overcome.